é åºä¿èšŒä»ãã¡ãã»ãŒãžãã¥ãŒã®èšèšã«é¢ããå æ¬çã¬ã€ããæ§ã ãªæŠç¥ããã¬ãŒããªãããããŠã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³ã«ãããå®è·µçãªèæ ®äºé ãæ¢ããŸãã
ã¡ãã»ãŒãžãã¥ãŒã®èšèšïŒã¡ãã»ãŒãžé åºä¿èšŒã®ç¢ºä¿
ã¡ãã»ãŒãžãã¥ãŒã¯çŸä»£ã®åæ£ã·ã¹ãã ã®åºæ¬çãªæ§æèŠçŽ ã§ããããµãŒãã¹éã®éåæéä¿¡ãå¯èœã«ããã¹ã±ãŒã©ããªãã£ãåäžãããå埩åãé«ããŸããããããã¡ãã»ãŒãžãéä¿¡ãããé åºã§åŠçãããããšãä¿èšŒããããšã¯ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠéèŠãªèŠä»¶ã§ãããã®ããã°èšäºã§ã¯ã忣ã¡ãã»ãŒãžãã¥ãŒã«ãããã¡ãã»ãŒãžã®é åºãç¶æããäžã§ã®èª²é¡ãæ¢ããæ§ã ãªèšèšæŠç¥ãšãã¬ãŒããªãã«é¢ããå æ¬çãªã¬ã€ããæäŸããŸãã
ã¡ãã»ãŒãžã®é åºãéèŠãªçç±
ã¡ãã»ãŒãžã®é åºã¯ãã€ãã³ãã®ã·ãŒã±ã³ã¹ãããŒã¿æŽåæ§ãšã¢ããªã±ãŒã·ã§ã³ããžãã¯ãç¶æããããã«éèŠãªã·ããªãªã§æ¥µããŠéèŠã§ãã以äžã®äŸãèããŠã¿ãŠãã ããïŒ
- éèååŒïŒéè¡ã·ã¹ãã ã§ã¯ãåœåº§è²žè¶ãäžæ£ç¢ºãªæ®é«ãé²ãããã«ãåæ¹ãšè²žæ¹ã®æäœãæ£ããé åºã§åŠçããå¿ èŠããããŸãã貞æ¹ã¡ãã»ãŒãžã®åŸã«åæ¹ã¡ãã»ãŒãžãå°çãããšãäžæ£ç¢ºãªå£åº§ç¶æ ã«ã€ãªããå¯èœæ§ããããŸãã
- 泚æåŠçïŒeã³ããŒã¹ãã©ãããã©ãŒã ã§ã¯ãã¹ã ãŒãºãªé¡§å®¢äœéšãšæ£ç¢ºãªåšåº«ç®¡çãä¿èšŒããããã«ã泚æã®åä»ãæ¯æãåŠçãåºè·ç¢ºèªã®ã¡ãã»ãŒãžãæ£ããé åºã§åŠçããå¿ èŠããããŸãã
- ã€ãã³ããœãŒã·ã³ã°ïŒã€ãã³ããœãŒã·ã³ã°ã·ã¹ãã ã§ã¯ãã€ãã³ãã®é åºãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã衚ããŸããã€ãã³ããé åºéãã«åŠçããªããšãããŒã¿ã®ç ŽæãäžæŽåã«ã€ãªããå¯èœæ§ããããŸãã
- ãœãŒã·ã£ã«ã¡ãã£ã¢ãã£ãŒãïŒçµææŽåæ§ã¯ãã°ãã°èš±å®¹ãããŸãããæçš¿ãæç³»åé ã«è¡šç€ºãããªããšããŠãŒã¶ãŒã«ãšã£ãŠäžæºãªäœéšãšãªãããšããããŸããã»ãŒãªã¢ã«ã¿ã€ã ã®é åºä»ãããã°ãã°æãŸããŸãã
- åšåº«ç®¡çïŒç¹ã«åæ£ç°å¢ã§åšåº«ã¬ãã«ãæŽæ°ããå Žåãåšåº«ã®è¿œå ãšåæžãæ£ããé åºã§åŠçãããããšãä¿èšŒããããšãæ£ç¢ºæ§ã®ããã«äžå¯æ¬ ã§ããè¿åã«ããåšåº«è¿œå ã®åã«è²©å£²ãåŠçããããããªã·ããªãªã¯ãäžæ£ç¢ºãªåšåº«ã¬ãã«ãšæœåšçãªéå°è²©å£²ã«ã€ãªããå¯èœæ§ããããŸãã
ã¡ãã»ãŒãžã®é åºãç¶æã§ããªããšãããŒã¿ã®ç Žæãäžæ£ç¢ºãªã¢ããªã±ãŒã·ã§ã³ç¶æ ããããŠå£åãããŠãŒã¶ãŒäœéšã«ã€ãªããå¯èœæ§ããããŸãããããã£ãŠãã¡ãã»ãŒãžãã¥ãŒã®èšèšäžã«ã¡ãã»ãŒãžã®é åºä¿èšŒãæ éã«èæ ®ããããšãäžå¯æ¬ ã§ãã
ã¡ãã»ãŒãžé åºãç¶æããäžã§ã®èª²é¡
忣ã¡ãã»ãŒãžãã¥ãŒã§ã¡ãã»ãŒãžã®é åºãç¶æããããšã¯ãããã€ãã®èŠå ã«ããå°é£ã§ãïŒ
- 忣ã¢ãŒããã¯ãã£ïŒã¡ãã»ãŒãžãã¥ãŒã¯ããã°ãã°è€æ°ã®ãããŒã«ãŒãããŒããæã€åæ£ç°å¢ã§åäœããŸãããã¹ãŠã®ããŒãã§ã¡ãã»ãŒãžãåãé åºã§åŠçãããããšãä¿èšŒããã®ã¯å°é£ã§ãã
- äžŠè¡æ§ïŒè€æ°ã®ã³ã³ã·ã¥ãŒããŒãåæã«ã¡ãã»ãŒãžãåŠçããå¯èœæ§ããããé åºãçã£ãåŠçã«ã€ãªããå¯èœæ§ããããŸãã
- é害ïŒããŒãã®é害ããããã¯ãŒã¯ã®åæããŸãã¯ã³ã³ã·ã¥ãŒããŒã®ã¯ã©ãã·ã¥ã¯ãã¡ãã»ãŒãžåŠçã劚ããé åºã®åé¡ã«ã€ãªããå¯èœæ§ããããŸãã
- ã¡ãã»ãŒãžã®å詊è¡ïŒå€±æããã¡ãã»ãŒãžãå詊è¡ãããšãå詊è¡ãããã¡ãã»ãŒãžãåŸç¶ã®ã¡ãã»ãŒãžããå ã«åŠçãããå Žåã«é åºã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
- ããŒããã©ã³ã·ã³ã°ïŒããŒããã©ã³ã·ã³ã°æŠç¥ã䜿çšããŠè€æ°ã®ã³ã³ã·ã¥ãŒããŒã«ã¡ãã»ãŒãžã忣ããããšãæå³ããã¡ãã»ãŒãžãé åºéãã«åŠçãããªãããšã«ã€ãªããå¯èœæ§ããããŸãã
ã¡ãã»ãŒãžé åºãä¿èšŒããããã®æŠç¥
忣ã¡ãã»ãŒãžãã¥ãŒã§ã¡ãã»ãŒãžã®é åºãä¿èšŒããããã«ãããã€ãã®æŠç¥ãæ¡çšããããšãã§ããŸããåæŠç¥ã«ã¯ãããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ãè€éãã®èгç¹ããç¬èªã®ãã¬ãŒããªãããããŸãã
1. åäžãã¥ãŒãåäžã³ã³ã·ã¥ãŒããŒ
æãåçŽãªã¢ãããŒãã¯ãåäžã®ãã¥ãŒãšåäžã®ã³ã³ã·ã¥ãŒããŒã䜿çšããããšã§ããããã«ãããã¡ãã»ãŒãžãåä¿¡ãããé åºã§åŠçãããããšãä¿èšŒãããŸãããããããã®ã¢ãããŒãã¯ã¹ã±ãŒã©ããªãã£ãšã¹ã«ãŒããããå¶éããŸãããªããªããäžåºŠã«1ã€ã®ã³ã³ã·ã¥ãŒããŒããã¡ãã»ãŒãžãåŠçã§ããªãããã§ãããã®ã¢ãããŒãã¯ãå°èŠæš¡ãªéèæ©é¢ã§é»ä¿¡ééãäžåºŠã«1ã€ãã€åŠçãããªã©ãäœããªã¥ãŒã ã§é åºãéèŠãªã·ããªãªã§å®è¡å¯èœã§ãã
å©ç¹ïŒ
- å®è£ ãç°¡å
- å³å¯ãªé åºãä¿èšŒ
æ¬ ç¹ïŒ
- ã¹ã±ãŒã©ããªãã£ãšã¹ã«ãŒããããéå®ç
- åäžé害ç¹
2. é åºããŒã«ããããŒãã£ã·ã§ãã³ã°
ããã¹ã±ãŒã©ãã«ãªã¢ãããŒãã¯ãé åºããŒã«åºã¥ããŠãã¥ãŒãããŒãã£ã·ã§ãã³ã°ããããšã§ããåãé åºããŒãæã€ã¡ãã»ãŒãžã¯åãããŒãã£ã·ã§ã³ã«é ä¿¡ãããããšãä¿èšŒãããã³ã³ã·ã¥ãŒããŒã¯åããŒãã£ã·ã§ã³å ã§ã¡ãã»ãŒãžãé åºéãã«åŠçããŸããäžè¬çãªé åºããŒã«ã¯ããŠãŒã¶ãŒIDãæ³šæIDããŸãã¯å£åº§çªå·ãªã©ããããŸããããã«ãããç°ãªãé åºããŒãæã€ã¡ãã»ãŒãžã䞊è¡ããŠåŠçããªãããåããŒå ã§ã®é åºãç¶æããããšãã§ããŸãã
äŸïŒ
ç¹å®ã®æ³šæã«é¢é£ããã¡ãã»ãŒãžãé åºéãã«åŠçããå¿ èŠãããeã³ããŒã¹ãã©ãããã©ãŒã ãèããŠã¿ãŸããããæ³šæIDãé åºããŒãšããŠäœ¿çšã§ããŸããæ³šæID 123ã«é¢é£ãããã¹ãŠã®ã¡ãã»ãŒãžïŒäŸïŒæ³šæåä»ãæ¯æã確èªãåºè·æŽæ°ïŒã¯åãããŒãã£ã·ã§ã³ã«ã«ãŒãã£ã³ã°ãããé åºéãã«åŠçãããŸããç°ãªã泚æIDïŒäŸïŒæ³šæID 456ïŒã«é¢é£ããã¡ãã»ãŒãžã¯ãå¥ã®ããŒãã£ã·ã§ã³ã§åæã«åŠçã§ããŸãã
Apache KafkaãApache Pulsarã®ãããªäººæ°ã®ã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã¯ãé åºããŒã«ããããŒãã£ã·ã§ãã³ã°ãçµã¿èŸŒã¿ã§ãµããŒãããŠããŸãã
å©ç¹ïŒ
- åäžãã¥ãŒã«æ¯ã¹ãŠã¹ã±ãŒã©ããªãã£ãšã¹ã«ãŒããããåäž
- åããŒãã£ã·ã§ã³å ã§ã®é åºãä¿èšŒ
æ¬ ç¹ïŒ
- é åºããŒã®æ éãªéžæãå¿ èŠ
- é åºããŒã®äžåäžãªååžã¯ãããããŒãã£ã·ã§ã³ã«ã€ãªããå¯èœæ§
- ããŒãã£ã·ã§ã³ãšã³ã³ã·ã¥ãŒããŒã®ç®¡çãè€é
3. ã·ãŒã±ã³ã¹çªå·
å¥ã®ã¢ãããŒãã¯ãã¡ãã»ãŒãžã«ã·ãŒã±ã³ã¹çªå·ãå²ãåœãŠãã³ã³ã·ã¥ãŒããŒãã¡ãã»ãŒãžãã·ãŒã±ã³ã¹çªå·é ã«åŠçããããšãä¿èšŒããããšã§ããããã¯ãé åºãçã£ãŠå°çããã¡ãã»ãŒãžããããã¡ãªã³ã°ããå è¡ããã¡ãã»ãŒãžãåŠçããããšãã«è§£æŸããããšã§å®çŸã§ããŸããããã«ã¯ãæ¬ èœããã¡ãã»ãŒãžãæ€åºããåéä¿¡ãèŠæ±ããã¡ã«ããºã ãå¿ èŠã§ãã
äŸïŒ
忣ãã®ã³ã°ã·ã¹ãã ã¯ãè€æ°ã®ãµãŒããŒãããã°ã¡ãã»ãŒãžãåä¿¡ããŸããåãµãŒããŒã¯ããã®ãã°ã¡ãã»ãŒãžã«ã·ãŒã±ã³ã¹çªå·ãå²ãåœãŠãŸãããã°ã¢ã°ãªã²ãŒã¿ãŒã¯ã¡ãã»ãŒãžããããã¡ãªã³ã°ããã·ãŒã±ã³ã¹çªå·é ã«åŠçããããšã§ããããã¯ãŒã¯ã®é å»¶ã«ããé åºãçã£ãŠå°çããå Žåã§ãããã°ã€ãã³ããæ£ããé åºä»ããããããšãä¿èšŒããŸãã
å©ç¹ïŒ
- é åºãçã£ãã¡ãã»ãŒãžã®åŠçã«æè»æ§ãæäŸ
- ä»»æã®ã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã§äœ¿çšå¯èœ
æ¬ ç¹ïŒ
- ã³ã³ã·ã¥ãŒããŒåŽã§ã®ãããã¡ãªã³ã°ãšäžŠã¹æ¿ãããžãã¯ãå¿ èŠ
- æ¬ èœã¡ãã»ãŒãžãšå詊è¡ã®åŠçãè€éå
- ãããã¡ãªã³ã°ã«ããé å»¶å¢å ã®å¯èœæ§
4. åªçãªã³ã³ã·ã¥ãŒããŒ
åªçæ§ãšã¯ãããæäœãè€æ°åé©çšããŠããæåã®é©çšä»¥éã¯çµæãå€ãããªããšããæ§è³ªã§ããã³ã³ã·ã¥ãŒããŒãåªçã«èšèšãããŠããã°ãäžæŽåãåŒãèµ·ããããšãªãå®å šã«ã¡ãã»ãŒãžãè€æ°ååŠçã§ããŸããããã«ãããat-least-onceïŒå°ãªããšã1åïŒé ä¿¡ã»ãã³ãã£ã¯ã¹ãå¯èœã«ãªããŸããããã¯ãã¡ãã»ãŒãžãå°ãªããšã1åã¯é ä¿¡ãããããè€æ°åé ä¿¡ãããå¯èœæ§ãããããšãæå³ããŸããããã¯å³å¯ãªé åºãä¿èšŒãããã®ã§ã¯ãããŸããããã·ãŒã±ã³ã¹çªå·ãªã©ã®ä»ã®æè¡ãšçµã¿åãããããšã§ãã¡ãã»ãŒãžãæåã«é åºéãã«å°çããªããŠããæçµçãªæŽåæ§ãä¿èšŒããããšãã§ããŸãã
äŸïŒ
æ¯æãåŠçã·ã¹ãã ã§ã¯ãã³ã³ã·ã¥ãŒããŒãæ¯æã確èªã¡ãã»ãŒãžãåä¿¡ããŸããã³ã³ã·ã¥ãŒããŒã¯ãããŒã¿ããŒã¹ãã¯ãšãªããŠæ¯æããæ¢ã«åŠçãããŠãããã©ããã確èªããŸããæ¯æããæ¢ã«åŠçãããŠããå Žåãã³ã³ã·ã¥ãŒããŒã¯ã¡ãã»ãŒãžãç¡èŠããŸããããã§ãªãå Žåã¯ãæ¯æããåŠçããããŒã¿ããŒã¹ãæŽæ°ããŸããããã«ãããåãæ¯æã確èªã¡ãã»ãŒãžãè€æ°ååä¿¡ãããŠããæ¯æãã¯äžåºŠããåŠçãããªãããšãä¿èšŒãããŸãã
å©ç¹ïŒ
- at-least-onceé ä¿¡ã蚱容ããããšã§ã¡ãã»ãŒãžãã¥ãŒã®èšèšãç°¡çŽ å
- ã¡ãã»ãŒãžã®éè€ã«ãã圱é¿ã軜æž
æ¬ ç¹ïŒ
- åªçæ§ãä¿èšŒããããã«ã³ã³ã·ã¥ãŒããŒã®æ éãªèšèšãå¿ èŠ
- ã³ã³ã·ã¥ãŒããŒããžãã¯ã®è€éããå¢å
- ã¡ãã»ãŒãžã®é åºã¯ä¿èšŒãããªã
5. ãã©ã³ã¶ã¯ã·ã§ãã«ã¢ãŠãããã¯ã¹ãã¿ãŒã³
ãã©ã³ã¶ã¯ã·ã§ãã«ã¢ãŠãããã¯ã¹ãã¿ãŒã³ã¯ãããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®äžéšãšããŠã¡ãã»ãŒãžã確å®ã«ã¡ãã»ãŒãžãã¥ãŒã«çºè¡ãããããšãä¿èšŒããèšèšãã¿ãŒã³ã§ããããã«ãããããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ãæåããå Žåã«ã®ã¿ã¡ãã»ãŒãžãçºè¡ãããã¢ããªã±ãŒã·ã§ã³ãã¡ãã»ãŒãžãçºè¡ããåã«ã¯ã©ãã·ã¥ããŠãã¡ãã»ãŒãžã倱ãããªãããšãä¿èšŒãããŸããäž»ã«ä¿¡é Œæ§ã®é«ãã¡ãã»ãŒãžé ä¿¡ã«çŠç¹ãåœãŠãŠããŸãããããŒãã£ã·ã§ãã³ã°ãšçµã¿åãããŠãç¹å®ã®ãšã³ãã£ãã£ã«é¢é£ããã¡ãã»ãŒãžã®é åºä»ããããé ä¿¡ãä¿èšŒããããã«äœ¿çšã§ããŸãã
ä»çµã¿ïŒ
- ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ãæŽæ°ããŠã¡ãã»ãŒãžãçºè¡ããå¿ èŠãããå ŽåãããŒã¿æŽæ°ãšåãããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³å ã§ãã¢ãŠãããã¯ã¹ãããŒãã«ã«ã¡ãã»ãŒãžãæ¿å ¥ããŸãã
- å¥ã®ããã»ã¹ïŒäŸïŒããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã°ã®è¿œè·¡è ãã¹ã±ãžã¥ãŒã«ããããžã§ãïŒãã¢ãŠãããã¯ã¹ããŒãã«ãç£èŠããŸãã
- ãã®ããã»ã¹ã¯ã¢ãŠãããã¯ã¹ããŒãã«ããã¡ãã»ãŒãžãèªã¿åããã¡ãã»ãŒãžãã¥ãŒã«çºè¡ããŸãã
- ã¡ãã»ãŒãžãæ£åžžã«çºè¡ããããšãããã»ã¹ã¯ã¢ãŠãããã¯ã¹ããŒãã«ããã¡ãã»ãŒãžãéä¿¡æžã¿ãšããŠããŒã¯ïŒãŸãã¯åé€ïŒããŸãã
äŸïŒ
æ°ããé¡§å®¢ã®æ³šæãè¡ããããšãã¢ããªã±ãŒã·ã§ã³ã¯æ³šæè©³çްã`orders`ããŒãã«ã«æ¿å ¥ãã察å¿ããã¡ãã»ãŒãžã`outbox`ããŒãã«ã«ããã¹ãŠåãããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³å ã§æ¿å ¥ããŸãã`outbox`ããŒãã«ã®ã¡ãã»ãŒãžã«ã¯ãæ°ããæ³šæã«é¢ããæ å ±ãå«ãŸããŠããŸããå¥ã®ããã»ã¹ããã®ã¡ãã»ãŒãžãèªã¿åãã`new_orders`ãã¥ãŒã«çºè¡ããŸããããã«ãããæ³šæãããŒã¿ããŒã¹ã§æ£åžžã«äœæãããå Žåã«ã®ã¿ã¡ãã»ãŒãžãçºè¡ãããã¢ããªã±ãŒã·ã§ã³ãçºè¡åã«ã¯ã©ãã·ã¥ããŠãã¡ãã»ãŒãžã倱ãããªãããšãä¿èšŒãããŸããããã«ãã¡ãã»ãŒãžãã¥ãŒã«çºè¡ããéã«é¡§å®¢IDãããŒãã£ã·ã§ã³ããŒãšããŠäœ¿çšããããšã§ããã®é¡§å®¢ã«é¢é£ãããã¹ãŠã®ã¡ãã»ãŒãžãé åºéãã«åŠçãããããšãä¿èšŒãããŸãã
å©ç¹ïŒ
- ããŒã¿ããŒã¹æŽæ°ãšã¡ãã»ãŒãžçºè¡ã®éã®ä¿¡é Œæ§ã®é«ãã¡ãã»ãŒãžé ä¿¡ãšååæ§ãä¿èšŒããŸãã
- ããŒãã£ã·ã§ãã³ã°ãšçµã¿åãããŠãé¢é£ã¡ãã»ãŒãžã®é åºä»ããããé ä¿¡ãä¿èšŒã§ããŸãã
æ¬ ç¹ïŒ
- ã¢ããªã±ãŒã·ã§ã³ã«è€éããå ãããã¢ãŠãããã¯ã¹ããŒãã«ãç£èŠããããã®å¥ã®ããã»ã¹ãå¿ èŠã«ãªããŸãã
- ããŒã¿ã®äžæŽåãé¿ããããã«ãããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®åé¢ã¬ãã«ãæ éã«èæ ®ããå¿ èŠããããŸãã
é©åãªæŠç¥ã®éžæ
ã¡ãã»ãŒãžã®é åºãä¿èšŒããããã®æè¯ã®æŠç¥ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ã«ãã£ãŠç°ãªããŸãã以äžã®èŠå ãèæ ®ããŠãã ããïŒ
- ã¹ã±ãŒã©ããªãã£èŠä»¶ïŒã©ããããã®ã¹ã«ãŒããããå¿ èŠã§ããïŒã¢ããªã±ãŒã·ã§ã³ã¯åäžã®ã³ã³ã·ã¥ãŒããŒã§èããããŸããããããšãããŒãã£ã·ã§ãã³ã°ãå¿ èŠã§ããïŒ
- é åºèŠä»¶ïŒãã¹ãŠã®ã¡ãã»ãŒãžã«å³å¯ãªé åºãå¿ èŠã§ããããããšãé¢é£ããã¡ãã»ãŒãžã«å¯ŸããŠã®ã¿é åºãéèŠã§ããïŒ
- è€éãïŒã¢ããªã±ãŒã·ã§ã³ã¯ã©ããããã®è€éãã«èããããŸããïŒåäžãã¥ãŒã®ãããªåçŽãªãœãªã¥ãŒã·ã§ã³ã¯å®è£ ã容æã§ãããããŸãã¹ã±ãŒã«ããªãå¯èœæ§ããããŸãã
- èé害æ§ïŒã·ã¹ãã ã¯é害ã«å¯ŸããŠã©ãã ãå埩åãå¿ èŠã§ããïŒ
- ã¬ã€ãã³ã·èŠä»¶ïŒã¡ãã»ãŒãžã¯ã©ããããè¿ éã«åŠçãããå¿ èŠããããŸããïŒãããã¡ãªã³ã°ãšäžŠã¹æ¿ãã¯ã¬ã€ãã³ã·ãå¢å ãããå¯èœæ§ããããŸãã
- ã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã®æ©èœïŒéžæããã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã¯ã©ã®ãããªé åºä»ãæ©èœãæäŸããŠããŸããïŒ
é©åãªæŠç¥ãéžæããããã®æ±ºå®ã¬ã€ãã¯æ¬¡ã®ãšããã§ãïŒ
- å³å¯ãªé åºãäœã¹ã«ãŒãããïŒåäžãã¥ãŒãåäžã³ã³ã·ã¥ãŒããŒ
- ã³ã³ããã¹ãå ïŒäŸïŒãŠãŒã¶ãŒã泚æïŒã§ã®é åºä»ããããã¡ãã»ãŒãžãé«ã¹ã«ãŒãããïŒé åºããŒã«ããããŒãã£ã·ã§ãã³ã°
- ææçºçããé äžåã¡ãã»ãŒãžã®åŠçãæè»æ§ïŒãããã¡ãªã³ã°ä»ãã·ãŒã±ã³ã¹çªå·
- at-least-onceé ä¿¡ãã¡ãã»ãŒãžéè€ã蚱容å¯èœïŒåªçãªã³ã³ã·ã¥ãŒããŒ
- ããŒã¿ããŒã¹æŽæ°ãšã¡ãã»ãŒãžçºè¡ã®éã®ååæ§ã®ç¢ºä¿ïŒãã©ã³ã¶ã¯ã·ã§ãã«ã¢ãŠãããã¯ã¹ãã¿ãŒã³ïŒé åºä»ããããé ä¿¡ã®ããã«ããŒãã£ã·ã§ãã³ã°ãšçµã¿åããå¯èœïŒ
ã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã®èæ ®äºé
ç°ãªãã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã¯ãã¡ãã»ãŒãžã®é åºä»ãã«é¢ããŠç°ãªãã¬ãã«ã®ãµããŒããæäŸããŸããã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ãéžæããéã«ã¯ã以äžãèæ ®ããŠãã ããïŒ
- é åºä¿èšŒïŒã·ã¹ãã ã¯å³å¯ãªé åºãæäŸããŸããããããšãããŒãã£ã·ã§ã³å ã§ã®é åºã®ã¿ãä¿èšŒããŸããïŒ
- ããŒãã£ã·ã§ãã³ã°ãµããŒãïŒã·ã¹ãã ã¯é åºããŒã«ããããŒãã£ã·ã§ãã³ã°ããµããŒãããŠããŸããïŒ
- Exactly-Onceã»ãã³ãã£ã¯ã¹ïŒã·ã¹ãã ã¯exactly-onceã»ãã³ãã£ã¯ã¹ãæäŸããŸããããããšãat-least-onceãŸãã¯at-most-onceã»ãã³ãã£ã¯ã¹ã®ã¿ãæäŸããŸããïŒ
- èé害æ§ïŒã·ã¹ãã ã¯ããŒãã®é害ããããã¯ãŒã¯ã®åæã«ã©ãã ãããŸã察åŠããŸããïŒ
ããã€ãã®äººæ°ã®ããã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ã®é åºä»ãæ©èœã®æŠèŠã¯æ¬¡ã®ãšããã§ãïŒ
- Apache KafkaïŒããŒãã£ã·ã§ã³å ã§å³å¯ãªé åºãæäŸããŸããåãããŒãæã€ã¡ãã»ãŒãžã¯åãããŒãã£ã·ã§ã³ã«é ä¿¡ãããé åºéãã«åŠçãããããšãä¿èšŒãããŸãã
- Apache PulsarïŒããŒãã£ã·ã§ã³å ã§å³å¯ãªé åºãæäŸããŸãããŸããexactly-onceã»ãã³ãã£ã¯ã¹ãéæããããã®ã¡ãã»ãŒãžéè€æé€ããµããŒãããŠããŸãã
- RabbitMQïŒå³å¯ãªé åºä»ãã®ããã«åäžãã¥ãŒãåäžã³ã³ã·ã¥ãŒããŒããµããŒãããŸãããŸãããšã¯ã¹ãã§ã³ãžã¿ã€ããšã«ãŒãã£ã³ã°ããŒã䜿çšããããŒãã£ã·ã§ãã³ã°ããµããŒãããŠããŸããã远å ã®ã¯ã©ã€ã¢ã³ãåŽããžãã¯ãªãã§ã¯ããŒãã£ã·ã§ã³éã®é åºã¯ä¿èšŒãããŸããã
- Amazon SQSïŒãã¹ããšãã©ãŒãã®é åºä»ããæäŸããŸããã¡ãã»ãŒãžã¯éåžžãéä¿¡ãããé åºã§é ä¿¡ãããŸãããé åºãçã£ãé ä¿¡ãå¯èœã§ããSQS FIFOãã¥ãŒïŒå å ¥ãå åºãïŒã¯ãexactly-onceåŠçãšé åºä¿èšŒãæäŸããŸãã
- Azure Service BusïŒã¡ãã»ãŒãžã»ãã·ã§ã³ããµããŒãããŠãããé¢é£ããã¡ãã»ãŒãžãã°ã«ãŒãåããåäžã®ã³ã³ã·ã¥ãŒããŒã«ãã£ãŠé åºéãã«åŠçãããããšãä¿èšŒããæ¹æ³ãæäŸããŸãã
å®è·µçãªèæ ®äºé
é©åãªæŠç¥ãšã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ãéžæããããšã«å ããŠã以äžã®å®è·µçãªèæ ®äºé ãæ€èšããŠãã ããïŒ
- ç£èŠãšã¢ã©ãŒãïŒé åºãçã£ãã¡ãã»ãŒãžããã®ä»ã®é åºã®åé¡ãæ€åºããããã«ãç£èŠãšã¢ã©ãŒããå®è£ ããŸãã
- ãã¹ãïŒã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ãé åºèŠä»¶ãæºãããŠããããšã確èªããããã«ã培åºçã«ãã¹ãããŸããé害ãåæåŠçãã·ãã¥ã¬ãŒããããã¹ããå«ããŸãã
- 忣ãã¬ãŒã·ã³ã°ïŒã¡ãã»ãŒãžãã·ã¹ãã ãæµããéã«è¿œè·¡ããæœåšçãªé åºã®åé¡ãç¹å®ããããã«åæ£ãã¬ãŒã·ã³ã°ãå®è£ ããŸããJaegerãZipkinãAWS X-Rayãªã©ã®ããŒã«ã¯ã忣ã¡ãã»ãŒãžãã¥ãŒã¢ãŒããã¯ãã£ã®åé¡ã蚺æããã®ã«éåžžã«åœ¹ç«ã¡ãŸããã¡ãã»ãŒãžã«äžæã®èå¥åãã¿ã°ä»ãããç°ãªããµãŒãã¹éã§ã®ç§»åã远跡ããããšã§ãã¡ãã»ãŒãžãé å»¶ãããé åºãçã£ãŠåŠçãããããããã€ã³ããç°¡åã«ç¹å®ã§ããŸãã
- ã¡ãã»ãŒãžãµã€ãºïŒã¡ãã»ãŒãžãµã€ãºã倧ãããšãããã©ãŒãã³ã¹ã«åœ±é¿ãäžãããããã¯ãŒã¯ã®é å»¶ãã¡ãã»ãŒãžãã¥ãŒã®å¶éã«ããé åºã®åé¡ãçºçããå¯èœæ§ãé«ãŸããŸããããŒã¿ãå§çž®ãããã倧ããªã¡ãã»ãŒãžãå°ããªãã£ã³ã¯ã«åå²ãããããŠãã¡ãã»ãŒãžãµã€ãºãæé©åããããšãæ€èšããŠãã ããã
- ã¿ã€ã ã¢ãŠããšå詊è¡ïŒäžæçãªé害ããããã¯ãŒã¯ã®åé¡ã«å¯ŸåŠããããã«ãé©åãªã¿ã€ã ã¢ãŠããšå詊è¡ããªã·ãŒãèšå®ããŸãããã ããç¹ã«ã¡ãã»ãŒãžãè€æ°ååŠçãããå¯èœæ§ãããã·ããªãªã§ã¯ãå詊è¡ãã¡ãã»ãŒãžã®é åºã«äžãã圱é¿ã«æ³šæããŠãã ããã
çµè«
忣ã¡ãã»ãŒãžãã¥ãŒã§ã¡ãã»ãŒãžã®é åºãä¿èšŒããããšã¯ãæ§ã ãªèŠå ãæ éã«èæ ®ããå¿ èŠãããè€éãªèª²é¡ã§ãããã®ããã°èšäºã§æŠèª¬ããæ§ã ãªæŠç¥ããã¬ãŒããªããããã³å®è·µçãªèæ ®äºé ãçè§£ããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®é åºèŠä»¶ãæºãããããŒã¿æŽåæ§ãšè¯å¥œãªãŠãŒã¶ãŒäœéšãä¿èšŒããã¡ãã»ãŒãžãã¥ãŒã·ã¹ãã ãèšèšã§ããŸããã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«åºã¥ããŠé©åãªæŠç¥ãéžæããã·ã¹ãã ãé åºèŠä»¶ãæºãããŠããããšã確èªããããã«åŸ¹åºçã«ãã¹ãããããšãå¿ããªãã§ãã ãããã·ã¹ãã ãé²åããã«ã€ããŠãå€åããèŠä»¶ã«é©å¿ããæé©ãªããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã確ä¿ããããã«ãã¡ãã»ãŒãžãã¥ãŒã®èšèšãç¶ç¶çã«ç£èŠããæ¹è¯ããŠãã ããã